import axios from 'axios'
// import code from './code.json'
import { Message } from 'element-ui'
import NProgress from 'nprogress'

const request = axios.create({
    baseURL: process.env.VUE_APP_AJAX
})

request.interceptors.request.use(
    function(config){
        NProgress.start();

        // console.log(config);
        // if(config.url!="login"){
        //     // 统一授权字段定义
        //     config.headers.Authorization = localStorage.getItem("token")
        // }
        if(!config.public){
            // 统一授权字段定义
            config.headers.Authorization = localStorage.getItem("token")
        }
        return config;
    },
    function(error){
        console.log(error);
        Message.error("程序运行错误");
    }
)

// TODO
request.interceptors.response.use(
    function ( { data } ) { 
        NProgress.done();

        let result = data.data;
        if(data.meta.status>=400){
            Message.error( data.meta.msg )
            // Message.error( code[data.meta.status]||"程序运行错误" )
            // result = null;
            return null;
        }
        if( data.meta.status==201||data.meta.status==204 ){
            Message.success( data.meta.msg );
            return result;
        }
        if(result==null){
            return true;
        }
        return result;
    },
    function (error) {
        NProgress.done();

        console.log(error);
        if (error.response) {
            switch (error.response.status) {
                case 404:
                    Message.error("资源不存在");
                    break;
                case 500:
                    Message.error("服务器运行错误");
                    break;
                default:
                    Message.error("请求失败");
                    break;
            }
        } else if (error.request) {
            Message.error("网络连接异常");
        } else {
            Message.error("程序运行错误");
        }
    }
)

export default request;